Principal Middleware Specialist/Architect Blog: http://christianposta.com/blog Twitter: @christianposta Email: christian@redhat.com |
Committer on Apache Camel, ActiveMQ, Fabric8, PMC on ActiveMQ
Author: Essential Camel Components DZone Refcard
Frequent blogger and speaker about open-source technology!
Principal Solution Architect Blog: http://cmoulliard.github.io Twitter: @cmoulliard Email: cmoulliard@redhat.com |
Committer on Apache Camel, Karaf, Fabric8, Hawtio … & PMC
Technology evangelist
Mountain Biker, blogger
The cost of change
Microservices
Fabric8
OpenShift PaaS
CI/CD
Demo
Development
Operational
Infrastructure
Business requirements
Microservices
DevOps philosophies
Cloud (IaaS, PaaS/iPaaS/mBaaS)
Integration is Hard!
Different system vintages
Mainframe, EAI Hub, MOM, EJB, Web Services
Evolving business processes
Systems must work together
File exchange, Shared Database, Remote Procedure Call (RPC), Messaging
|
Technology for Microservices ?
|
Simplification (deployment & container provisioning)
Service discovery & smart load balancing
Provides cluster capabilities, coordination
Extend GOALS of FabricV1
Provision Other Java Containers : JBoss EAP, Tomcat, …
Rely on a New API & Architecture Design
Decouple Devs & Ops
Container runtime & image distribution
Launch Process (cmd/entrypoint)
Top of a Union FS mounted with immutable images
Benefits: portability, reusability, versioning, application-centric
Runtime & Operational management of containers
ApiServer (event, status), Scheduler, Controller & State Storage
Agent - Kubelet - manage containers on host
Containers pods (= shared docker containers)
Flexible technology options
Developer self service
Automation, DevOps philosophy
Decoupling between operations and developers, reduces coordination
Designed around Kubernetes, Docker & Fabric8
Provide additional features : build (STI), deploy, manage & promote
|
Builds on continuous integration
Establish a concrete pipeline to production
Build/Test/Release often!
Bottlenecks?
Involves Dev and Ops to be successful
Every build is a “release candidate”
Developers
Unit tests
Integration tests
Builds
Deployments in dev
Operations
VMs
Provisioning software
Deployments in QA/UAT/PROD
Puppet/Chef to provision VMs
Git for SCM
Gerrit/Gitlab for code reviews
Maven
Jenkins + plugins
and of course… Fabric8!
docker:build
docker:push
fabric8:json
fabric8:create-env
fabric8:publish
fabric8:create-routes
fabric8:delete-pods
Check your code in
Gerrit for code reviews
Jenkins for build + CD pipeline
Use fabric8:zip to deploy profiles to Maven repo
Use fabric8:branch to automate deploying multiple profiles to QA/UAT/PROD
Can use profile-import to manually import zips
Build the binary once!
|
More info
www.jboss.org/products/fuse.html